563ad6f6c0f1b90bdfbb28a74dbf95f107c793ff,sonar-server/src/main/java/org/sonar/server/platform/ServerComponentsStarter.java,ServerComponentsStarter,registerComponents,#ComponentContainer#,176

Before Change


    pico.addSingleton(ServerLifecycleNotifier.class);
    pico.addSingleton(AnnotationProfileParser.class);
    pico.addSingleton(DefaultRuleFinder.class);
    pico.addSingleton(DefaultMetricFinder.class);
    pico.addSingleton(ResourceTypes.class);
    pico.addSingleton(SettingsChangeNotifier.class);
    pico.addSingleton(PageDecorations.class);
    pico.addSingleton(MeasureFilterFactory.class);
    pico.addSingleton(MeasureFilterExecutor.class);
    pico.addSingleton(MeasureFilterEngine.class);
    pico.addSingleton(PreviewCache.class);
    pico.addSingleton(DefaultResourcePermissions.class);
    pico.addSingleton(Periods.class);

    // web services
    pico.addSingleton(WebServiceEngine.class);
    pico.addSingleton(ListingWs.class);

    // quality profiles
    pico.addSingleton(QProfileRuleLookup.class);
    pico.addSingleton(QProfiles.class);
    pico.addSingleton(QProfileLookup.class);
    pico.addSingleton(QProfileOperations.class);
    pico.addSingleton(QProfileActiveRuleOperations.class);
    pico.addSingleton(QProfileProjectOperations.class);
    pico.addSingleton(QProfileProjectLookup.class);
    pico.addSingleton(QProfileBackup.class);
    pico.addSingleton(QProfileRepositoryExporter.class);
    pico.addSingleton(ESActiveRule.class);

    // quality gates
    pico.addSingleton(QualityGateDao.class);
    pico.addSingleton(QualityGateConditionDao.class);
    pico.addSingleton(QualityGates.class);
    pico.addSingleton(ProjectQgateAssociationDao.class);
    pico.addSingleton(QgateProjectFinder.class);
    pico.addSingleton(QgateAppHandler.class);
    pico.addSingleton(QualityGatesWs.class);

    // users
    pico.addSingleton(HibernateUserFinder.class);
    pico.addSingleton(NewUserNotifier.class);
    pico.addSingleton(DefaultUserFinder.class);
    pico.addSingleton(DefaultUserService.class);

    // groups
    pico.addSingleton(GroupMembershipService.class);
    pico.addSingleton(GroupMembershipFinder.class);

    // permissions
    pico.addSingleton(PermissionFacade.class);
    pico.addSingleton(InternalPermissionService.class);
    pico.addSingleton(InternalPermissionTemplateService.class);
    pico.addSingleton(PermissionFinder.class);

    // components
    pico.addSingleton(DefaultComponentFinder.class);
    pico.addSingleton(DefaultRubyComponentService.class);
    pico.addSingleton(ComponentDao.class);

    // issues
    pico.addSingleton(ServerIssueStorage.class);
    pico.addSingleton(IssueUpdater.class);
    pico.addSingleton(FunctionExecutor.class);
    pico.addSingleton(IssueWorkflow.class);
    pico.addSingleton(IssueService.class);
    pico.addSingleton(IssueCommentService.class);
    pico.addSingleton(DefaultIssueFinder.class);
    pico.addSingleton(IssueStatsFinder.class);
    pico.addSingleton(PublicRubyIssueService.class);
    pico.addSingleton(InternalRubyIssueService.class);
    pico.addSingleton(ActionPlanService.class);
    pico.addSingleton(IssueChangelogService.class);
    pico.addSingleton(IssueNotifications.class);
    pico.addSingleton(ActionService.class);
    pico.addSingleton(Actions.class);
    pico.addSingleton(IssueFilterSerializer.class);
    pico.addSingleton(IssueFilterService.class);
    pico.addSingleton(IssueBulkChangeService.class);
    pico.addSingleton(IssueChangelogFormatter.class);
    pico.addSingleton(IssueFilterWs.class);
    pico.addSingleton(IssueShowWsHandler.class);
    pico.addSingleton(IssuesWs.class);

    // issues actions
    pico.addSingleton(AssignAction.class);
    pico.addSingleton(PlanAction.class);
    pico.addSingleton(SetSeverityAction.class);
    pico.addSingleton(CommentAction.class);
    pico.addSingleton(TransitionAction.class);

    // rules
    pico.addSingleton(Rules.class);
    pico.addSingleton(RuleOperations.class);
    pico.addSingleton(RuleRegistry.class);
    pico.addSingleton(RubyRuleService.class);
    pico.addSingleton(RuleRepositories.class);
    pico.addSingleton(RulesWs.class);
    pico.addSingleton(RuleShowWsHandler.class);
    pico.addSingleton(RuleSearchWsHandler.class);
    pico.addSingleton(AddTagsWsHandler.class);
    pico.addSingleton(RemoveTagsWsHandler.class);

After Change


    pico.addSingleton(Periods.class);

    // quality profile
    pico.addSingleton(XMLProfileParser.class);
    pico.addSingleton(XMLProfileSerializer.class);
    pico.addComponent(ProfilesDao.class, false);
    pico.addComponent(ProfilesManager.class, false);
    pico.addSingleton(AnnotationProfileParser.class);
    pico.addSingleton(QProfileRuleLookup.class);
    pico.addSingleton(QProfiles.class);
    pico.addSingleton(QProfileLookup.class);
    pico.addSingleton(QProfileOperations.class);
    pico.addSingleton(QProfileActiveRuleOperations.class);
    pico.addSingleton(QProfileProjectOperations.class);
    pico.addSingleton(QProfileProjectLookup.class);
    pico.addSingleton(QProfileBackup.class);
    pico.addSingleton(QProfileRepositoryExporter.class);
    pico.addSingleton(ESActiveRule.class);

    // rule
    pico.addSingleton(AnnotationRuleParser.class);
    pico.addSingleton(XMLRuleParser.class);
    pico.addComponent(RulesDao.class, false);
    pico.addSingleton(DefaultRuleFinder.class);
    pico.addSingleton(Rules.class);
    pico.addSingleton(RuleOperations.class);
    pico.addSingleton(RuleRegistry.class);
    pico.addSingleton(RubyRuleService.class);
    pico.addSingleton(RuleRepositories.class);
    pico.addSingleton(RulesWs.class);
    pico.addSingleton(RuleShowWsHandler.class);
    pico.addSingleton(RuleSearchWsHandler.class);
    pico.addSingleton(AddTagsWsHandler.class);
    pico.addSingleton(RemoveTagsWsHandler.class);

    // rule tags
    pico.addSingleton(ESRuleTags.class);
    pico.addSingleton(RuleTagLookup.class);
    pico.addSingleton(RuleTagOperations.class);
    pico.addSingleton(RuleTags.class);
    pico.addSingleton(RuleTagsWs.class);

    // measure
    pico.addComponent(MeasuresDao.class, false);
    pico.addSingleton(MeasureFilterFactory.class);
    pico.addSingleton(MeasureFilterExecutor.class);
    pico.addSingleton(MeasureFilterEngine.class);
    pico.addSingleton(DefaultMetricFinder.class);
    pico.addSingleton(ServerLifecycleNotifier.class);

    // quality gates